import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

import java.io.IOException;

// 使用MapReduce基于经过Pandas清洗后的微博用户数据user_clean.csv统计微博用户占比
public class WeiBoUserCountMap extends Mapper<LongWritable, Text, Text, IntWritable> {

    @Override
    protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
        // 获取文件的一条数据并转为String
        String line = value.toString();
        // 按逗号切分
        String[] splits = line.split(",");

        String user_id = splits[0]; // 用户id
        String gender = splits[1]; // 性别
        String username = splits[2]; // 用户名
        String follower_cnt = splits[3]; //粉丝数
        String following_cnt = splits[4]; //关注数

        // 跳过第一行数据 因为第一行为表头
        if (!"用户id".equals(user_id)) {
            // 将每个用户的性别作为key，1 作为value 通过context发送到reduce端做处理
            context.write(new Text(gender), new IntWritable(1));
        }

    }
}
